package org.exhaust.framework.net.common.protocol.encoder;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufUtil;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToMessageEncoder;
import lombok.extern.slf4j.Slf4j;
import org.exhaust.framework.net.common.protocol.BaseFrame;

import java.util.List;

@Slf4j
public class TcpFrameToByteBufEncoder extends MessageToMessageEncoder<BaseFrame> {
    @Override
    protected void encode(ChannelHandlerContext ctx, BaseFrame msg, List<Object> out) throws Exception {
        ByteBuf byteBuf = ctx.alloc().buffer();
        msg.encode(byteBuf);
        String hexDump = ByteBufUtil.hexDump(byteBuf);
        log.info("encoded msg:{}", hexDump);
        out.add(byteBuf);
    }
}
